package bingo.spring.context;

import java.lang.reflect.Method;

/**
 * 2008-5-4 上午11:23:37
 * Author:yangdongyu(yangdy@bingosoft.net)
 * ReadMe:
 * ChangeLog:
 */
public interface MethodSurroundAdvice {
	/**
	 * 方法执行之前执行的动作
	 * @param target 方法调用的目标对象
	 * @param method 调用的方法
	 */
	void beforeAdvice(Object target,Method method);
	/**
	 * 方法执行之后做的事情
	 * @param target 方法调用的目标对象
	 * @param method 调用的方法
	 */
	void afterAdvice(Object target,Method method);
	/**
	 * 当发生异常时执行的方法
	 * @param target 目标对象
	 * @param method 调用的方法
	 * @param ex 方法异常
	 */
	void afterThrow(Object target,Method method,Throwable ex);
	
	/**
	 * 一定要执行的方法
	 * @param target 目标对象
	 * @param method 调用的方法
	 */
	void afterFinally(Object target,Method method);
	

}
